home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / utildisk 6 omitech.adf / DOCS / copperbobs.S < prev    next >
Text File  |  1990-03-10  |  15KB  |  595 lines

  1. *********************************************************
  2. *                            *
  3. *    Eine Copper-Blitter-Coproduktion...        *
  4. *                            *
  5. *                (c) '90 by MIC/L4    *
  6. *********************************************************
  7. ;---- Bob-Competition ---- (die genialste Bob-Routine...)
  8.             ;  (... aber leider nicht die schnellste)
  9. balls = 192
  10.  
  11. balldaten = $40000
  12. ballmasken = balldaten+[balls*15*4]
  13.  
  14. anz_tabs = 20
  15.  
  16. ytable = ballmasken+[ballmasken-balldaten]
  17. xtable = ytable+[200*2*anz_tabs]
  18. shifttable = xtable+[320*2*anz_tabs]
  19.  
  20.     jmp    start
  21.  
  22.     org    $20000
  23.     load    $20000
  24. d:
  25. start:
  26.     move.l    4.w,a6
  27.     lea    grafname(pc),a1
  28.     jsr    -408(a6)
  29.     move.l    d0,a1
  30.     move.l    38(a1),oldcopper
  31.     jsr    -414(a6)
  32.  
  33.     move.w    $dff002,olddma
  34.     or.w    #$8000,olddma
  35.     move.w    $dff01c,oldint
  36.     or.w    #$8000,oldint
  37.  
  38.     move.w    #$7fff,$dff09a
  39.     move.w    #$7fff,$dff096
  40.  
  41.     bsr.l    prog_begin
  42.  
  43.     move.l    oldcopper(pc),$dff080
  44.  
  45.     move.w    #$7fff,$dff09a
  46.     move.w    #$7fff,$dff096
  47.  
  48.     move.l    oldcopper(pc),$dff080
  49.     clr.w    $dff088
  50.  
  51.     move.w    olddma(pc),$dff096
  52.     move.w    oldint(pc),$dff09a
  53.  
  54.     rts
  55.  
  56. prog_begin:
  57.     lea    $60000,a0
  58.     lea    $80000,a1
  59.     moveq    #0,d0
  60. clr_all:
  61.     move.l    d0,(a0)+
  62. ;    addq.l    #1,d0
  63.     cmp.l    a1,a0
  64.     blt.s    clr_all
  65.  
  66.     bsr.l    init_balls
  67.     bsr.l    init_clear
  68.     bsr.l    init_curve
  69.     bsr.l    init_customregs
  70.  
  71. sync_rein:
  72.     cmp.b    #255,$dff006
  73.     bne.s    sync_rein
  74.  
  75.     move.l    #clist,$dff080
  76.     clr.w    $dff088
  77.     move.w    #$8080,$dff096
  78.  
  79.     move.l    $6c.w,oldvbl
  80.     move.l    #newvbl,$6c.w
  81.     move.w    #$c020,$dff09a        ;vbl-int erlauben
  82.  
  83.     lea    $dff180,a5
  84. mouse:
  85. ;    move.w    #$00f,(a5)
  86. ;    move.w    #$0ff,(a5)
  87.  
  88.     btst    #6,$bfe001
  89.     bne.s    mouse
  90.  
  91.     move.l    oldvbl(pc),$6c.w    ;alter vbl-int
  92.  
  93.     rts
  94.  
  95. curve_shiftpt: dc.l shifttable
  96. curve_xpt: dc.l xtable
  97. curve_ypt: dc.l ytable
  98. curve_xmod: dc.w 8
  99. curve_ymod: dc.w 10
  100. xspeed: dc.w 4
  101. yspeed: dc.w 2
  102.  
  103. bl = 216
  104. pl = 400-bl
  105.  
  106. oldvbl: dc.l 0
  107. newvbl:
  108.     move.w    #$0070,$dff09c        ;level3-int loeschen
  109.  
  110.     move.l    logbase(pc),a6
  111.     lea    64*2*200(a6),a6
  112.  
  113.     moveq    #0,d0
  114.     move.l    d0,d1
  115.     move.l    d0,d2
  116.     move.l    d0,d3
  117.     move.l    d0,d4
  118.     move.l    d0,d5
  119.     move.l    d0,d6
  120.     move.l    d0,a0
  121.     move.l    d0,a1
  122.     move.l    d0,a2
  123.  
  124.     moveq    #24,d7            ;64-40 = 24
  125. clear_proz:
  126.     sub.l    d7,a6
  127.     movem.l    d0-d6/a0-a2,-(a6)
  128. clear_proz_list:
  129.     blk.w    [pl-1]*3,0
  130.     move.w    #$8080,$dff096
  131.     move.w    #$f00,$dff180
  132.  
  133.     lea    d(pc),a6
  134.  
  135.     move.w    logbase(pc),d0
  136.     move.w    physbase(pc),logbase-d(a6) ;lo-wort immer gleich
  137.     move.w    d0,physbase-d(a6)
  138.  
  139.     move.l    #$000000fe,$dff180    ;farbe 0 und 1
  140.     move.l    #$005c0017,$dff184    ;farbe 2 und 3
  141.  
  142.     move.l    curve_shiftpt(pc),d0    ;zeiger auf shiftwerte
  143.     move.w    d0,clist_shiftpt+6-d(a6)
  144.     move.w    d0,clist2_shiftpt+6-d(a6)
  145.     swap    d0
  146.     move.w    d0,clist_shiftpt+2-d(a6)
  147.     move.w    d0,clist2_shiftpt+2-d(a6)
  148.  
  149.     move.w    curve_xmod(pc),clist_xcu+2-d(a6)  ;x-sinus
  150.     move.w    curve_xmod(pc),clist2_xcu+2-d(a6)
  151.  
  152.     move.l    curve_xpt(pc),d0        ;x-zeiger
  153.     move.w    d0,clist_xpt+6-d(a6)
  154.     move.w    d0,clist2_xpt+6-d(a6)
  155.     swap    d0
  156.     move.w    d0,clist_xpt+2-d(a6)
  157.     move.w    d0,clist2_xpt+2-d(a6)
  158.  
  159.     move.l    curve_ypt(pc),d0        ;x-zeiger
  160.     move.w    d0,clist_ypt+6-d(a6)
  161.     move.w    d0,clist2_ypt+6-d(a6)
  162.     swap    d0
  163.     move.w    d0,clist_ypt+2-d(a6)
  164.     move.w    d0,clist2_ypt+2-d(a6)
  165.  
  166.     move.w    curve_ymod(pc),clist_ycu+2-d(a6)  ;x-sinus
  167.     move.w    curve_ymod(pc),clist2_ycu+2-d(a6)
  168.  
  169.     move.l    curve_shiftpt(pc),a0
  170.     move.l    curve_xpt(pc),a1
  171.     add.w    xspeed(pc),a0
  172.     add.w    xspeed(pc),a1
  173.     cmp.l    #shifttable+[320*2],a0
  174.     blt.s    curves_ok
  175.     lea    -[320*2](a0),a0
  176.     lea    -[320*2](a1),a1
  177. curves_ok:
  178.     move.l    a0,curve_shiftpt-d(a6)
  179.     move.l    a1,curve_xpt-d(a6)
  180.  
  181.     move.l    curve_ypt(pc),a0
  182.     add.w    yspeed(pc),a0
  183.     cmp.l    #ytable+[200*2],a0
  184.     blt.s    curves2_ok
  185.     lea    -[200*2](a0),a0
  186. curves2_ok:
  187.     move.l    a0,curve_ypt
  188.  
  189.     rte
  190.  
  191. stack: dc.l 0
  192. clear_buf: blk.l 16,0
  193.  
  194. init_clear:
  195.     lea    clear_proz,a0
  196.     lea    clear_proz_list,a1
  197.     lea    clear_proz+[pl*6],a2        ;ende
  198. init_clr_l:
  199.     move.w    (a0)+,(a1)+
  200.     cmp.l    a2,a1
  201.     blt.s    init_clr_l
  202.  
  203.     rts
  204.  
  205. init_curve:
  206.     lea    ytable,a0
  207.     moveq    #anz_tabs-1,d0
  208. init_cu1:
  209.     lea    y_tab,a1
  210.     move.w    #200-1,d1
  211. init_cu2:
  212.     move.w    (a1)+,d2
  213.     lsl.w    #7,d2            ;*128
  214.     move.w    d2,(a0)+
  215.     dbra    d1,init_cu2
  216.     dbra    d0,init_cu1
  217.  
  218.     lea    xtable,a0
  219.     moveq    #anz_tabs-1,d0
  220. init_cu3:
  221.     lea    x_tab,a1
  222.     move.w    #320-1,d1
  223. init_cu4:
  224.     move.w    (a1)+,(a0)+
  225.     dbra    d1,init_cu4
  226.     dbra    d0,init_cu3
  227.  
  228.     lea    shifttable,a0
  229.     moveq    #anz_tabs-1,d0
  230. init_cu5:
  231.     lea    shift_tab,a1
  232.     move.w    #320-1,d1
  233. init_cu6:
  234.     move.w    (a1)+,(a0)+
  235.     dbra    d1,init_cu6
  236.     dbra    d0,init_cu5
  237.  
  238.     rts
  239.  
  240. init_balls:
  241.     lea    balldaten,a0
  242.     lea    balldaten+[15*4],a1
  243.     lea    ballmasken,a2
  244.     lea    ballmasken+[15*4],a3
  245.     move.w    #balls*15-1,d0
  246. init_balls_l:
  247.     move.l    (a0)+,(a1)+        ;daten
  248.     move.l    (a2)+,(a3)+        ;masken
  249.     dbra    d0,init_balls_l
  250.  
  251.     lea    blit_clist,a0
  252.     lea    blit_rout,a1
  253.     lea    blit_rout2,a2
  254.     lea    blit_rout_end,a3
  255. copy_blit_rout:
  256.     move.w    (a0),(a1)+
  257.  
  258.     move.w    (a0)+,(a2)+
  259.     cmp.l    a3,a1
  260.     blt.s    copy_blit_rout
  261.  
  262.     rts
  263.  
  264. grafname: dc.b "graphics.library",0
  265.     even
  266. oldcopper: dc.l 0
  267. olddma:    dc.w 0
  268. oldint: dc.w 0
  269.  
  270. logbase: dc.l $60000
  271. physbase: dc.l $70000
  272.  
  273. init_customregs:
  274.     lea    $dff000,a0
  275.     move.w    #$2981,$8e(a0)
  276.     move.w    #$f1c1,$90(a0)        ;screenhoehe,breite
  277.     move.w    #$0038,$92(a0)        ;ddf-start
  278.     move.w    #$00d0,$94(a0)        ;ddf-stop
  279.     move.w    #128-40,$108(a0)
  280.     move.w    #128-40,$10a(a0)    ;screen-modulos
  281.     move.w    #0,$104(a0)        ;prioritaet
  282.     move.w    #0,$102(a0)
  283.     move.w    #0,$144(a0)
  284.     move.w    #0,$146(a0)        ;sprites aus
  285.     move.w    #$ffff,$2e(a0)        ;blits durch copper !
  286.     move.w    #$8740,$96(a0)
  287.  
  288.     rts
  289.  
  290. clist:        ;nur zum blitten der bobs !!!
  291.     dc.l $00e00007,$00e20000
  292.     dc.l $00e40007,$00e60040    ;planes
  293.     dc.l $01800000
  294.     dc.l $01002200
  295.  
  296.     dc.l $00010000            ;waitblit
  297.  
  298.     dc.l $0044ffff
  299.     dc.l $0046ffff
  300.  
  301.     dc.l $004009f0            ;shiftwerte kopieren
  302. clist_shiftpt:
  303.     dc.l $00500000+[shifttable/$10000]
  304.     dc.l $00520000+[shifttable&$ffff]
  305.     dc.l $00540000+[blit_clist+2/$10000]
  306.     dc.l $00560000+[blit_clist+2&$ffff]
  307.     dc.l $00660016            ;zielmod = 22
  308. clist_xcu:
  309.     dc.l $00640000
  310.     dc.l $00580000+[balls*64+1]
  311.     dc.l $00010000
  312.  
  313.     dc.l $00400dfc            ;y+x = y or x (bei 128 breite)
  314.     dc.l $00420000
  315. clist_xpt:
  316.     dc.l $00500000+[xtable/$10000]    ;fuer x-offsets
  317.     dc.l $00520000+[xtable&$ffff]
  318. clist_ypt:
  319.     dc.l $004c0000+[ytable/$10000]    ;fuer y-wert
  320.     dc.l $004e0000+[ytable&$ffff]
  321.  
  322.     dc.l $00540000+[blit_clist+10/$10000]
  323.     dc.l $00560000+[blit_clist+10&$ffff]
  324. clist_ycu:
  325.     dc.l $00620000
  326.  
  327.     dc.l $00580000+[balls*64+1]
  328.     dc.l $00010000
  329.  
  330. ;-- hier werden firstwordmask und ziel verdoppelt !
  331.     dc.l $004009f0            ;einfaches kopieren
  332.     dc.l $0044f000            ;nur oberes nibble
  333.     dc.l $0046ffff
  334.  
  335.     dc.l $00640000+22
  336.     dc.l $00660000+22
  337.  
  338.     dc.l $00500000+[blit_clist+2/$10000]
  339.     dc.l $00520000+[blit_clist+2&$ffff]
  340.     dc.l $00540000+[blit_clist+6/$10000]
  341.     dc.l $00560000+[blit_clist+6&$ffff]
  342.  
  343.     dc.l $00580000+[balls*64+1]
  344.     dc.l $00010000
  345.  
  346.     dc.l $0044ffff            ;jetzt ziele kopieren
  347.     dc.l $00500000+[blit_clist+10/$10000]
  348.     dc.l $00520000+[blit_clist+10&$ffff]
  349.     dc.l $00540000+[blit_clist+14/$10000]
  350.     dc.l $00560000+[blit_clist+14&$ffff]
  351.  
  352.     dc.l $00580000+[balls*64+1]
  353.     dc.l $00010000
  354.  
  355. ;-- an hier blitten
  356.     dc.l $0060003c,$0066003c    ;screen: 64-4 = 60
  357.     dc.l $0062fffe,$0064fffe    ;daten: -2 wegen shiftung
  358.  
  359.     dc.l $00500000+[ballmasken/$10000] ;hi-zeiger auf masken
  360.     dc.l $00520000+[ballmasken&$ffff] ;lo-zeiger auf masken
  361.     dc.l $004c0000+[balldaten/$10000] ;hi-zeiger auf daten
  362.     dc.l $004e0000+[balldaten&$ffff] ;lo-zeiger auf daten
  363.  
  364.     dc.l $0044ffff,$00460000    ;anfangs und endmask
  365.  
  366.     dc.l $00540006            ;dpt
  367.     dc.l $00480006            ;cpt
  368.  
  369.     dc.l $00800000+[clist2/$10000]    ;neue clist
  370.     dc.l $00820000+[clist2&$ffff]
  371.  
  372.     dc.l $00960080
  373. blit_clist:
  374.     dc.l $00400fca,$00420000
  375.     dc.l $004a0000,$00560000
  376.     dc.w $0058,15*2*64+2
  377.     dc.l $00010000            ;waitblit
  378. blit_rout: blk.b *-blit_clist*[balls-1],0
  379. blit_rout_end:
  380.  
  381. ;-- screen loeschen
  382.     dc.l $00660018            ;modulo 24
  383.     dc.l $00400100            ;nur ziel einschalten
  384.     dc.l $00540007            ;screen bei $60000
  385.     dc.l $00560000
  386.  
  387.     dc.l $00580000+[bl*64+20]
  388.     dc.l $fffffffe
  389.  
  390. clist2:        ;nur zum blitten der bobs !!!
  391.     dc.l $00e00006,$00e20000
  392.     dc.l $00e40006,$00e60040    ;planes
  393.     dc.l $01800000
  394.     dc.l $01002200
  395.  
  396.     dc.l $00010000            ;waitblit
  397.  
  398.     dc.l $0044ffff
  399.     dc.l $0046ffff
  400.  
  401.     dc.l $004009f0            ;shiftwerte kopieren
  402. clist2_shiftpt:
  403.     dc.l $00500000+[shifttable/$10000]
  404.     dc.l $00520000+[shifttable&$ffff]
  405.     dc.l $00540000+[blit_clist2+2/$10000]
  406.     dc.l $00560000+[blit_clist2+2&$ffff]
  407.     dc.l $00660016            ;zielmod = 22
  408. clist2_xcu:
  409.     dc.l $00640000
  410.     dc.l $00580000+[balls*64+1]
  411.     dc.l $00010000
  412.  
  413.     dc.l $00400dfc            ;y+x = y or x (bei 128 breite)
  414.     dc.l $00420000
  415. clist2_xpt:
  416.     dc.l $00500000+[xtable/$10000]    ;fuer x-offsets
  417.     dc.l $00520000+[xtable&$ffff]
  418. clist2_ypt:
  419.     dc.l $004c0000+[ytable/$10000]    ;fuer y-wert
  420.     dc.l $004e0000+[ytable&$ffff]
  421.  
  422.     dc.l $00540000+[blit_clist2+10/$10000]
  423.     dc.l $00560000+[blit_clist2+10&$ffff]
  424. clist2_ycu:
  425.     dc.l $00620000
  426.  
  427.     dc.l $00580000+[balls*64+1]
  428.     dc.l $00010000
  429.  
  430. ;-- hier werden firstwordmask und ziel verdoppelt !
  431.     dc.l $004009f0            ;einfaches kopieren
  432.     dc.l $0044f000            ;nur oberes nibble
  433.     dc.l $0046ffff
  434.  
  435.     dc.l $00640000+22
  436.     dc.l $00660000+22
  437.  
  438.     dc.l $00500000+[blit_clist2+2/$10000]
  439.     dc.l $00520000+[blit_clist2+2&$ffff]
  440.     dc.l $00540000+[blit_clist2+6/$10000]
  441.     dc.l $00560000+[blit_clist2+6&$ffff]
  442.  
  443.     dc.l $00580000+[balls*64+1]
  444.     dc.l $00010000
  445.  
  446.     dc.l $0044ffff            ;jetzt ziele kopieren
  447.     dc.l $00500000+[blit_clist2+10/$10000]
  448.     dc.l $00520000+[blit_clist2+10&$ffff]
  449.     dc.l $00540000+[blit_clist2+14/$10000]
  450.     dc.l $00560000+[blit_clist2+14&$ffff]
  451.  
  452.     dc.l $00580000+[balls*64+1]
  453.     dc.l $00010000
  454.  
  455. ;-- an hier blitten
  456.     dc.l $0060003c,$0066003c    ;screen: 64-4 = 60
  457.     dc.l $0062fffe,$0064fffe    ;daten: -2 wegen shiftung
  458.  
  459.     dc.l $00500000+[ballmasken/$10000] ;hi-zeiger auf masken
  460.     dc.l $00520000+[ballmasken&$ffff] ;lo-zeiger auf masken
  461.     dc.l $004c0000+[balldaten/$10000] ;hi-zeiger auf daten
  462.     dc.l $004e0000+[balldaten&$ffff] ;lo-zeiger auf daten
  463.  
  464.     dc.l $0044ffff,$00460000    ;anfangs und endmask
  465.  
  466.     dc.l $00540007            ;dpt
  467.     dc.l $00480007            ;cpt
  468.  
  469.     dc.l $00800000+[clist/$10000]    ;neue clist
  470.     dc.l $00820000+[clist&$ffff]
  471.  
  472.     dc.l $00960080
  473. blit_clist2:
  474.     dc.l $00400fca,$00420000
  475.     dc.l $004a0000,$00560000
  476.     dc.w $0058,15*2*64+2
  477.     dc.l $00010000            ;waitblit
  478. blit_rout2: blk.b *-blit_clist2*[balls-1],0
  479. blit_rout_end2:
  480.  
  481. ;-- screen loeschen
  482.     dc.l $00660018            ;modulo 24
  483.     dc.l $00400100            ;nur ziel einschalten
  484.     dc.l $00540006            ;screen bei $60000
  485.     dc.l $00560000
  486.  
  487.     dc.l $00580000+[bl*64+20]
  488.     dc.l $fffffffe
  489.  
  490. shift_tab:
  491.     DC.L    $9FCABFCA,$EFCA1FCA,$4FCA7FCA,$AFCADFCA,$0FCA3FCA
  492.     DC.L    $6FCA9FCA,$CFCAFFCA,$2FCA5FCA,$7FCAAFCA,$DFCA0FCA
  493.     DC.L    $3FCA5FCA,$8FCABFCA,$EFCA0FCA,$3FCA5FCA,$8FCAAFCA
  494.     DC.L    $DFCAFFCA,$2FCA4FCA,$7FCA9FCA,$BFCADFCA,$0FCA2FCA
  495.     DC.L    $4FCA6FCA,$8FCAAFCA,$CFCAEFCA,$0FCA2FCA,$3FCA5FCA
  496.     DC.L    $7FCA9FCA,$AFCACFCA,$DFCAFFCA,$0FCA1FCA,$3FCA4FCA
  497.     DC.L    $5FCA6FCA,$7FCA8FCA,$9FCAAFCA,$BFCACFCA,$CFCADFCA
  498.     DC.L    $EFCAEFCA,$FFCAFFCA,$FFCA0FCA,$0FCA0FCA,$0FCA0FCA
  499.     DC.L    $1FCA0FCA,$0FCA0FCA,$0FCA0FCA,$FFCAFFCA,$FFCAEFCA
  500.     DC.L    $EFCADFCA,$CFCACFCA,$BFCAAFCA,$9FCA8FCA,$7FCA6FCA
  501.     DC.L    $5FCA4FCA,$3FCA1FCA,$0FCAFFCA,$DFCACFCA,$AFCA9FCA
  502.     DC.L    $7FCA5FCA,$3FCA2FCA,$0FCAEFCA,$CFCAAFCA,$8FCA6FCA
  503.     DC.L    $4FCA2FCA,$0FCADFCA,$BFCA9FCA,$7FCA4FCA,$2FCAFFCA
  504.     DC.L    $DFCAAFCA,$8FCA5FCA,$3FCA0FCA,$EFCABFCA,$8FCA5FCA
  505.     DC.L    $3FCA0FCA,$DFCAAFCA,$7FCA5FCA,$2FCAFFCA,$CFCA9FCA
  506.     DC.L    $6FCA3FCA,$0FCADFCA,$AFCA7FCA,$4FCA1FCA,$EFCABFCA
  507.     DC.L    $9FCA6FCA,$3FCA0FCA,$DFCAAFCA,$7FCA4FCA,$1FCAEFCA
  508.     DC.L    $BFCA8FCA,$5FCA2FCA,$FFCACFCA,$AFCA7FCA,$4FCA1FCA
  509.     DC.L    $EFCACFCA,$9FCA6FCA,$3FCA1FCA,$EFCACFCA,$9FCA7FCA
  510.     DC.L    $4FCA2FCA,$FFCADFCA,$AFCA8FCA,$6FCA4FCA,$1FCAFFCA
  511.     DC.L    $DFCABFCA,$9FCA7FCA,$5FCA3FCA,$1FCAFFCA,$EFCACFCA
  512.     DC.L    $AFCA8FCA,$7FCA5FCA,$4FCA2FCA,$1FCA0FCA,$EFCADFCA
  513.     DC.L    $CFCABFCA,$AFCA9FCA,$8FCA7FCA,$6FCA5FCA,$5FCA4FCA
  514.     DC.L    $3FCA3FCA,$2FCA2FCA,$2FCA1FCA,$1FCA1FCA,$1FCA1FCA
  515.     DC.L    $0FCA1FCA,$1FCA1FCA,$1FCA1FCA,$2FCA2FCA,$2FCA3FCA
  516.     DC.L    $3FCA4FCA,$5FCA5FCA,$6FCA7FCA,$8FCA9FCA,$AFCABFCA
  517.     DC.L    $CFCADFCA,$EFCA0FCA,$1FCA2FCA,$4FCA5FCA,$7FCA8FCA
  518.     DC.L    $AFCACFCA,$EFCAFFCA,$1FCA3FCA,$5FCA7FCA,$9FCABFCA
  519.     DC.L    $DFCAFFCA,$1FCA4FCA,$6FCA8FCA,$AFCADFCA,$FFCA2FCA
  520.     DC.L    $4FCA7FCA,$9FCACFCA,$EFCA1FCA,$3FCA6FCA,$9FCACFCA
  521.     DC.L    $EFCA1FCA,$4FCA7FCA,$AFCACFCA,$FFCA2FCA,$5FCA8FCA
  522.     DC.L    $BFCAEFCA,$1FCA4FCA,$7FCAAFCA,$DFCA0FCA,$3FCA6FCA
  523.  
  524. y_tab:
  525.     DC.L    $00B900B8,$00B800B8,$00B800B7,$00B700B6,$00B600B5
  526.     DC.L    $00B400B3,$00B200B1,$00B000AE,$00AD00AC,$00AA00A9
  527.     DC.L    $00A700A5,$00A300A2,$00A0009E,$009B0099,$00970095
  528.     DC.L    $00930090,$008E008B,$00890086,$00840081,$007E007C
  529.     DC.L    $00790076,$00730071,$006E006B,$00680065,$0062005F
  530.     DC.L    $005D005A,$00570054,$0051004E,$004B0048,$00460043
  531.     DC.L    $0040003D,$003B0038,$00350033,$0030002E,$002B0029
  532.     DC.L    $00260024,$00220020,$001E001B,$00190017,$00160014
  533.     DC.L    $00120010,$000F000D,$000C000B,$00090008,$00070006
  534.     DC.L    $00050004,$00030003,$00020002,$00010001,$00010001
  535.     DC.L    $00000001,$00010001,$00010002,$00020003,$00030004
  536.     DC.L    $00050006,$00070008,$0009000B,$000C000D,$000F0010
  537.     DC.L    $00120014,$00160017,$0019001B,$001E0020,$00220024
  538.     DC.L    $00260029,$002B002E,$00300033,$00350038,$003B003D
  539.     DC.L    $00400043,$00460048,$004B004E,$00510054,$0057005A
  540.     DC.L    $005C005F,$00620065,$0068006B,$006E0071,$00730076
  541.     DC.L    $0079007C,$007E0081,$00840086,$0089008B,$008E0090
  542.     DC.L    $00930095,$00970099,$009B009E,$00A000A2,$00A300A5
  543.     DC.L    $00A700A9,$00AA00AC,$00AD00AE,$00B000B1,$00B200B3
  544.     DC.L    $00B400B5,$00B600B6,$00B700B7,$00B800B8,$00B800B8
  545.  
  546. x_tab:
  547.     DC.L    $00120012,$00120014,$00140014,$00140014,$00160016
  548.     DC.L    $00160016,$00160016,$00180018,$00180018,$0018001A
  549.     DC.L    $001A001A,$001A001A,$001A001C,$001C001C,$001C001C
  550.     DC.L    $001C001C,$001E001E,$001E001E,$001E001E,$00200020
  551.     DC.L    $00200020,$00200020,$00200020,$00220022,$00220022
  552.     DC.L    $00220022,$00220022,$00220022,$00240024,$00240024
  553.     DC.L    $00240024,$00240024,$00240024,$00240024,$00240024
  554.     DC.L    $00240024,$00240024,$00240026,$00260026,$00260026
  555.     DC.L    $00260026,$00260026,$00260026,$00240024,$00240024
  556.     DC.L    $00240024,$00240024,$00240024,$00240024,$00240024
  557.     DC.L    $00240024,$00240024,$00240022,$00220022,$00220022
  558.     DC.L    $00220022,$00220022,$00220020,$00200020,$00200020
  559.     DC.L    $00200020,$0020001E,$001E001E,$001E001E,$001E001C
  560.     DC.L    $001C001C,$001C001C,$001C001C,$001A001A,$001A001A
  561.     DC.L    $001A001A,$00180018,$00180018,$00180016,$00160016
  562.     DC.L    $00160016,$00160014,$00140014,$00140014,$00120012
  563.     DC.L    $00120012,$00120012,$00100010,$00100010,$0010000E
  564.     DC.L    $000E000E,$000E000E,$000C000C,$000C000C,$000C000C
  565.     DC.L    $000A000A,$000A000A,$000A000A,$00080008,$00080008
  566.     DC.L    $00080008,$00060006,$00060006,$00060006,$00060004
  567.     DC.L    $00040004,$00040004,$00040004,$00040002,$00020002
  568.     DC.L    $00020002,$00020002,$00020002,$00020002,$00000000
  569.     DC.L    $00000000,$00000000,$00000000,$00000000,$00000000
  570.     DC.L    $00000000,$00000000,$00000000,$00000000,$00000000
  571.     DC.L    $00000000,$00000000,$00000000,$00000000,$00000000
  572.     DC.L    $00000000,$00000000,$00000000,$00000000,$00000000
  573.     DC.L    $00000000,$00000002,$00020002,$00020002,$00020002
  574.     DC.L    $00020002,$00020002,$00040004,$00040004,$00040004
  575.     DC.L    $00040004,$00060006,$00060006,$00060006,$00060008
  576.     DC.L    $00080008,$00080008,$0008000A,$000A000A,$000A000A
  577.     DC.L    $000A000C,$000C000C,$000C000C,$000C000E,$000E000E
  578.     DC.L    $000E000E,$00100010,$00100010,$00100012,$00120012
  579.  
  580.  
  581.     load    balldaten
  582. ball_dat:    ;15x15 ball, 2 planes, raw-blit
  583.     dc.l    $07c007c0,$14f01cf0,$12382e38
  584.     dc.l    $7a2c463c,$12346e3c,$c432fc3e,$b822b83e,$806a8076
  585.     dc.l    $806a8076,$c3cec3f6,$5f147fec,$606c7f9c,$33983c78
  586.     dc.l    $1c701ff0,$07c007c0
  587.  
  588.     load    ballmasken
  589. ball_mask:    ;maske des balls (farbe 0 mitverwendet)
  590.     dc.l    $07c007c0,$1ff01ff0,$3ff83ff8,$7ffc7ffc,$7ffc7ffc
  591.     dc.l    $fffefffe,$fffefffe,$fffefffe,$fffefffe,$fffefffe
  592.     dc.l    $7ffc7ffc,$7ffc7ffc,$3ff83ff8,$1ff01ff0,$07c007c0
  593.  
  594. End:
  595.